package com.voute.Presenter.Impl;


import com.voute.Model.ISearchModel;
import com.voute.Model.IUpdateModel;
import com.voute.Model.Impl.SearchImpl;
import com.voute.Model.Impl.UpdateModelImpl;
import com.voute.Presenter.IUpdatePresenter;
import com.voute.View.IView.IUpdateView;

/**
 * 今日更新Presenter实现类
 * Created by liukanshan on 2016/12/8.
 */

public class UpdatePresenterImpl implements IUpdatePresenter {

    private IUpdateView mUpdateView;
    private IUpdateModel mUpdateModel;
    private ISearchModel mISearchModel;

    public UpdatePresenterImpl(IUpdateView updateView) {
        mUpdateView = updateView;
        mUpdateModel = new UpdateModelImpl();
        mISearchModel = new SearchImpl();
    }


    @Override
    public void getUpdateToday() {
//        mUpdateView.showLoading();
//        final List<String> resIds = new ArrayList<>();
//        mUpdateModel.getUpdateToday().flatMap(new Func1<UpdateBean, Observable<UpdateEntity>>() {
//            @Override
//            public Observable<UpdateEntity> call(UpdateBean updateBean) {
//                return Observable.from(updateBean.getData());
//            }
//        }).filter(new Func1<UpdateEntity, Boolean>() {
//            @Override
//            public Boolean call(UpdateEntity updateEntity) {
//                if (resIds.contains(updateEntity.getResourceid())) {
//                    return false;
//                } else {
//                    resIds.add(updateEntity.getResourceid());
//                    return true;
//                }
//            }
//        }).flatMap(new Func1<UpdateEntity, Observable<ResourceDetailsInfoBean>>() {
//            @Override
//            public Observable<ResourceDetailsInfoBean> call(final UpdateEntity updateEntity) {
//                return mISearchModel.getResourceInfo(updateEntity.getResourceid()).flatMap(new Func1<ResourceDetailsInfoBean, Observable<ResourceDetailsInfoBean>>() {
//                    @Override
//                    public Observable<ResourceDetailsInfoBean> call(ResourceDetailsInfoBean resourceDetailsInfoBean) {
//                        resourceDetailsInfoBean.getData().setWays(updateEntity.getWays());
//                        return Observable.just(resourceDetailsInfoBean);
//                    }
//                });
//            }
//        })
//                .toList()
//                .compose(TransformUtils.<List<ResourceDetailsInfoBean>>defaultSchedulers()).subscribe(new Subscriber<List<ResourceDetailsInfoBean>>() {
//            @Override
//            public void onCompleted() {
//                mUpdateView.hideLoading();
//            }
//
//            @Override
//            public void onError(Throwable e) {
//                mUpdateView.hideLoading();
//                mUpdateView.showError(e.getMessage());
//            }
//
//            @Override
//            public void onNext(List<ResourceDetailsInfoBean> resourceDetailsInfoBeen) {
//                mUpdateView.hideLoading();
//                mUpdateView.setUpdates(resourceDetailsInfoBeen);
//            }
//        });
    }
}
